From 4943cc4c1293e144a1b198835e27e9d59489aa01 Mon Sep 17 00:00:00 2001 From: Benjamin Otte Date: Mon, 1 Oct 2012 14:23:15 +0200 Subject: [PATCH] stylecontext: Actually use superset matcher ... when looking up the needed changes. This is what that matcher was actually written for, but it seems I never hooked it in. --- gtk/gtkstylecontext.c | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/gtk/gtkstylecontext.c b/gtk/gtkstylecontext.c index ebaeb1bef1..67cba7e775 100644 --- a/gtk/gtkstylecontext.c +++ b/gtk/gtkstylecontext.c @@ -3035,12 +3035,15 @@ gtk_style_context_needs_full_revalidate (GtkStyleContext *context, if (priv->relevant_changes == GTK_CSS_CHANGE_ANY) { GtkWidgetPath *path; - GtkCssMatcher matcher; + GtkCssMatcher matcher, superset; path = create_query_path (context, priv->info); if (_gtk_css_matcher_init (&matcher, path, priv->info->state_flags)) - priv->relevant_changes = _gtk_style_provider_private_get_change (GTK_STYLE_PROVIDER_PRIVATE (priv->cascade), - &matcher); + { + _gtk_css_matcher_superset_init (&superset, &matcher, GTK_STYLE_CONTEXT_RADICAL_CHANGE & ~GTK_CSS_CHANGE_SOURCE); + priv->relevant_changes = _gtk_style_provider_private_get_change (GTK_STYLE_PROVIDER_PRIVATE (priv->cascade), + &superset); + } else priv->relevant_changes = 0; -- 2.30.2